#ifndef __PT100_TEST_H__
#define __PT100_TEST_H__
#include <stdint.h>
#include <limits.h>
#include "thread_ctrl.h"

#define PT100_ITEM_NAME            "PT100"
#define PT100_ITEM_NUM             (1 + 1)
#define PT100_ARGV_OFFSET          2
#define PT100_DRV_NAME             "pcie_pt"
#define PT100_MAX_NUM              32

/* PT100 设备 */
struct pt100_dev_t {
    void *parent;                           /* 父指针 */
    char name[32];                          /* 设备名 */
    uint8_t index;                          /* 索引号 */

    int value;                              /* 通道数值 */

    char path[PATH_MAX];                    /* 路径 */
    int fd;                                 /* 文件 */
    struct thread_param_t *read_thread;     /* 接收线程 */
};

/* PT100 信息 */
struct pt100_param_t {
    void *parent;                           /* 父指针 */
    char name[32];                          /* 设备名 */
    uint8_t dev_id;                         /* 设备索引号 */
    uint8_t dev_num;                        /* 设备数量 */
    uint8_t max_num;                        /* 最大数量 */
    uint8_t type;                           /* 模块类型 */

    struct pt100_dev_t *dev;                /* PT100 设备 */
    int32_t val[PT100_MAX_NUM];             /* PT100 通道数据 */

    uint8_t item_id;                        /* 测试项目号 */
    uint8_t en_read;                        /* 使能接收 */
    int read_cnt;                           /* 接收数量 */
};

struct pt100_item_t {
    struct thread_info_t *thread;
    struct pt100_param_t *param;
};

extern struct pt100_param_t pt100_param;

int pt100_test(int argc, char *argv[]);

#endif /* __PT100_TEST_H__ */
